public enum ProcType
{
    PROC_INIT,
    PROC_LOGIN,
    PROC_LOBBY,
    PROC_GAME,
}


public abstract class Proc
{
    public Proc(ProcType f_type)
    {
        m_type = f_type;
    }
    ~Proc()
    {
    }

    private ProcType m_type;

    public ProcType type
    {
        get { return m_type; }
    }


    public abstract void process();

    public abstract void onBegin(object[] param);

    public abstract void onEnd();
}